package ar.uba.fi.tecnicas.juego;

import org.w3c.dom.*;

import ar.uba.fi.tecnicas.fabrica.TipoMaquina;
import ar.uba.fi.tecnicas.fabrica.TipoMaquinaCalidad;

public class ConfiguracionTipoMaquina extends ConfiguracionItems<TipoMaquina> 
{
	public final static ConfiguracionTipoMaquina instance = new ConfiguracionTipoMaquina();
	
	protected ConfiguracionTipoMaquina()
	{
		super();
	}
	
	protected void LoadData()
	{		
		Document xml = ConfiguracionJuego.instancia.obtenerXml();
		
		Element parentElement = this.getChildElement(xml.getDocumentElement(), "TiposMaquina");
		NodeList list = parentElement.getElementsByTagName("TipoMaquina");
		
		for(int index = 0; index < list.getLength(); index++)
		{
			if(list.item(index).getNodeType() == Node.ELEMENT_NODE)
			{
				Element tipoMaquinaElement = (Element)list.item(index);
				
				String calidad = tipoMaquinaElement.getAttribute("calidad");
				String nombre = this.getElementValue(this.getChildElement(tipoMaquinaElement, "Nombre"));
				String velocidad = this.getElementValue(this.getChildElement(tipoMaquinaElement, "Velocidad"));
				String precio = this.getElementValue(this.getChildElement(tipoMaquinaElement, "Precio"));
				
				TipoMaquina tipo = null;

				if(calidad.toLowerCase() == "false" || calidad == null || calidad == "")
				{
					String transformacion = this.getElementValue(this.getChildElement(tipoMaquinaElement, "Transformacion"));

					tipo = new TipoMaquina(
						nombre, 
						ConfiguracionTransformaciones.instance.getItem(transformacion),
						Integer.valueOf(velocidad),
						Double.valueOf(precio)
					);
				}
				else
				{
					// Obtener mejora porcentaje 
					String mejoraPorcentaje = this.getElementValue(this.getChildElement(tipoMaquinaElement, "MejoraPorcentaje"));

					tipo = new TipoMaquinaCalidad(
							nombre, 
							Integer.valueOf(velocidad),
							Double.valueOf(precio),
							Integer.valueOf(mejoraPorcentaje)
						);
				}
				
				this.items.put(nombre, tipo);
			}
		}
	}
}